package com.bdqn.ch06.sl;

import org.apache.log4j.Logger;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Before;

import java.util.Arrays;

public class UserServiceLogger {
    private static final Logger log = Logger.getLogger(ErrorLogger.class);
    @Before("execution(* com.bdqn.ch06.sl.UserService.*(..))")
    public void before(JoinPoint jp) {
        log.info("调用"+jp.getTarget()+"的"+jp.getSignature().getName()+"方法。方法入参："+ Arrays.toString(jp.getArgs()));
    }

    @AfterReturning(pointcut = "execution(* com.bdqn.ch06.sl.UserService.*(..))",returning = "returnValue")
    public void afterReturning(JoinPoint jp,Object returnValue) {
        log.info("调用"+jp.getTarget()+"的"+jp.getSignature().getName()+"方法。方法返回值："+returnValue);
    }
}
